home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
rb
/
jydrv220.lzh
/
STICK2.S
< prev
Wrap
Text File
|
1999-08-09
|
12KB
|
515 lines
*
* JOYDRV X-BASICライブラリ version 2.20
* Copyright 1995,96,97,98,99 by HUYE
*
.cpu 68000
.text
INFO_TBL:
.dc.l FNC_INIT * 初期化ルーチン
.dc.l RUN_FNC * RUN時サブルーチン
.dc.l END_FNC * END時サブルーチン
.dc.l EXIT_BASIC * OS復帰時サブルーチン
.dc.l BREAK_EXEC * BREAK時サブルーチン
.dc.l CTRLD_EXEC * CTRL+D時サブルーチン
.dc.l RES1_AREA * 予備
.dc.l RES2_AREA * 予備
.dc.l TOKEN_TBL * トークンテーブル
.dc.l PARM_TBL * パラメータテーブル
.dc.l EXEC_TBL * 実行アドレステーブル
.dc.l 0,0,0,0,0 * 予備
FNC_INIT:
RUN_FNC:
END_FNC:
EXIT_BASIC:
BREAK_EXEC:
CTRLD_EXEC:
RES1_AREA:
RES2_AREA:
rts
get_joy_data:
move.l $c(a7),d1 * ジョイスティック番号取得
subq.l #1,d1
moveq.l #$3b,d0
trap #15 * ジョイスティック読み込み
not.l d0
bra parm_set
get_joydrv:
bsr joydrv_sts
bra parm_set
joydrv_sts:
move.w #$ff00,d1
moveq.l #1,d2
moveq.l #$3b,d0
trap #15
tst.l d0
beq joydrv_sts_1
movea.l d0,a1
moveq.l #$84,d0
trap #15
cmpi.l #'JOYD',d0
bne joydrv_sts_1
moveq.l #$83,d0
trap #15
cmpi.w #'RV',d0
bne joydrv_sts_1
moveq.l #0,d0 * 常駐している
rts
joydrv_sts_1:
moveq.l #$fd,d0 * 常駐していない
rts
get_analog_data:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d3 * ジョイスティック番号取得
subq.l #1,d3
movea.l $16(a7),a1 * データ格納アドレス取得
moveq.l #$08,d2
move.w #$ff00,d1
moveq.l #$3b,d0
trap #15
bra parm_set
get_joy_mtap:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$10,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0 * マルチタップ判定状態
bra parm_set
get_joy_bitcnv:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
moveq.l #$ff,d3
moveq.l #$11,d2
move.w #$ff00,d1
moveq.l #$3b,d0
trap #15
ext.l d0 * ビット変換モード状態
bra parm_set
get_joy_bitdat:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
movea.l $16(a7),a1 * 変換データ格納アドレス取得
subq.l #1,d4
moveq.l #$ff,d3
moveq.l #$12,d2
move.w #$ff00,d1
moveq.l #$3b,d0
trap #15
bra parm_set
get_joy_out:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$13,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0 * マルチタップ判定状態
bra parm_set
get_tap_maxnum:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$15,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
get_plus_emu:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.w #$ff00,d1
moveq.l #$16,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
get_plus_thres:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.w #$ff00,d1
moveq.l #$17,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
get_stasel_mode:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.w #$ff00,d1
moveq.l #$18,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
get_lnsha_mode:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d5 * ビット番号取得
move.w #$ff00,d1
moveq.l #$19,d2
moveq.l #$ff,d3
moveq.l #$3b,d0
trap #15
ext.l d0
movea.l $20(a7),a1 * ON回数格納アドレス
moveq.l #0,d3
move.w d0,d3
lsr.w #8,d3
move.l d3,(a1)
movea.l $2a(a7),a1 * OFF回数格納アドレス
moveq.l #0,d3
move.b d0,d3
move.l d3,(a1)
bra parm_set
set_joy_mtap:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$10,d2
move.l $c(a7),d3 * 設定状態
moveq.l #$3b,d0
trap #15
ext.l d0 * マルチタップ判定状態
bra parm_set
set_joy_bitcnv:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d3 * 設定状態
moveq.l #$11,d2
move.w #$ff00,d1
moveq.l #$3b,d0
trap #15
ext.l d0 * ビット変換モード状態
bra parm_set
set_joy_bitdat:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
movea.l $16(a7),a1 * 変換データ格納アドレス取得
subq.l #1,d4
moveq.l #0,d3
moveq.l #$12,d2
move.w #$ff00,d1
moveq.l #$3b,d0
trap #15
bra parm_set
set_joy_out:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$13,d2
move.l $c(a7),d3 * 設定状態
moveq.l #$3b,d0
trap #15
ext.l d0 * マルチタップ判定状態
bra parm_set
set_tap_maxnum:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$15,d2
move.l $c(a7),d3 * 設定状態
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
set_plus_emu:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d3
move.w #$ff00,d1
moveq.l #$16,d2
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
set_plus_thres:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d3
move.w #$ff00,d1
moveq.l #$17,d2
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
set_stasel_mode:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d3 * 設定状態
move.w #$ff00,d1
moveq.l #$18,d2
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
set_lnsha_mode:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d4 * ジョイスティック番号取得
subq.l #1,d4
move.l $16(a7),d5 * ビット番号取得
moveq.l #0,d3
move.b $20+3(a7),d3 * ON回数取得
lsl.w #8,d3
move.b $2a+3(a7),d3 * OFF回数取得
move.w #$ff00,d1
moveq.l #$19,d2
moveq.l #$3b,d0
trap #15
ext.l d0
bra parm_set
read_ps_memc:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$20,d2
move.l $c(a7),d3 * ポート番号
subq.l #1,d3
move.l $16(a7),d4 * 転送開始フレーム番号
move.l $20(a7),d5 * 転送フレーム数-1
movea.l $2a(a7),a1 * データアドレス
moveq.l #$3b,d0
trap #15
bra parm_set
write_ps_memc:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.w #$ff00,d1
moveq.l #$21,d2
move.l $c(a7),d3 * ポート番号
subq.l #1,d3
move.l $16(a7),d4 * 転送開始フレーム番号
move.l $20(a7),d5 * 転送フレーム数-1
movea.l $2a(a7),a1 * データアドレス
moveq.l #$3b,d0
trap #15
bra parm_set
ctrl_ps_motor:
bsr joydrv_sts * 常駐状態取得
tst.l d0
bmi parm_set
move.l $c(a7),d3 * ジョイスティック番号取得
subq.l #1,d3
move.l $16(a7),d4 * コントロールステータス取得
move.l $20(a7),d5 * 第二モーター強弱値取得
move.w #$ff00,d1
moveq.l #$22,d2
moveq.l #$3b,d0
trap #15
parm_set:
lea.l RET_PARM_TBL(pc),a0 * 戻り値エリア
clr.w (a0)
move.l d0,6(a0) * 結果格納
moveq.l #0,d0 * 正常終了
rts
RET_PARM_TBL:
.dc.w 0
.dc.l 0,0
PARM_TBL:
.dc.l GET_JOY_DATA_PARM
.dc.l GET_JOYDRV_PARM
.dc.l GET_ANALOG_DATA_PARM
.dc.l GET_JOY_MTAP_PARM
.dc.l GET_JOY_BITCNV_PARM
.dc.l GET_JOY_BITDAT_PARM
.dc.l GET_JOY_OUT_PARM
.dc.l GET_TAP_MAXNUM_PARM
.dc.l GET_PLUS_EMU_PARM
.dc.l GET_PLUS_THRES_PARM
.dc.l GET_STASEL_MODE_PARM
.dc.l GET_LNSHA_MODE_PARM
.dc.l SET_JOY_MTAP_PARM
.dc.l SET_JOY_BITCNV_PARM
.dc.l SET_JOY_BITDAT_PARM
.dc.l SET_JOY_OUT_PARM
.dc.l SET_TAP_MAXNUM_PARM
.dc.l SET_PLUS_EMU_PARM
.dc.l SET_PLUS_THRES_PARM
.dc.l SET_STASEL_MODE_PARM
.dc.l SET_LNSHA_MODE_PARM
.dc.l READ_PS_MEMC_PARM
.dc.l WRITE_PS_MEMC_PARM
.dc.l CTRL_PS_MOTOR_PARM
GET_JOY_DATA_PARM:
.dc.w $0002,$8001
GET_JOYDRV_PARM:
.dc.w $8001
GET_ANALOG_DATA_PARM:
.dc.w $0002,$0012,$8001
GET_JOY_MTAP_PARM:
.dc.w $8001
GET_JOY_BITCNV_PARM:
.dc.w $0002,$8001
GET_JOY_BITDAT_PARM:
.dc.w $0002,$0012,$8001
GET_JOY_OUT_PARM:
.dc.w $8001
GET_TAP_MAXNUM_PARM:
.dc.w $8001
GET_PLUS_EMU_PARM:
.dc.w $0002,$8001
GET_PLUS_THRES_PARM:
.dc.w $0002,$8001
GET_STASEL_MODE_PARM:
.dc.w $0002,$8001
GET_LNSHA_MODE_PARM:
.dc.w $0002,$0002,$0012,$0012,$8001
SET_JOY_MTAP_PARM:
.dc.w $0002,$8001
SET_JOY_BITCNV_PARM:
.dc.w $0002,$0002,$8001
SET_JOY_BITDAT_PARM:
.dc.w $0002,$0012,$8001
SET_JOY_OUT_PARM:
.dc.w $0002,$8001
SET_TAP_MAXNUM_PARM:
.dc.w $0002,$8001
SET_PLUS_EMU_PARM:
.dc.w $0002,$0002,$8001
SET_PLUS_THRES_PARM:
.dc.w $0002,$0002,$8001
SET_STASEL_MODE_PARM:
.dc.w $0002,$0002,$8001
SET_LNSHA_MODE_PARM:
.dc.w $0002,$0002,$0002,$0002,$8001
READ_PS_MEMC_PARM:
.dc.w $0002,$0002,$0002,$0014,$8001
WRITE_PS_MEMC_PARM:
.dc.w $0002,$0002,$0002,$0014,$8001
CTRL_PS_MOTOR_PARM:
.dc.w $0002,$0002,$0002,$8001
EXEC_TBL:
.dc.l get_joy_data * 関数名(ジョイスティック状態の取得)
.dc.l get_joydrv * 関数名(ドライバ常駐状態の取得)
.dc.l get_analog_data * 関数名(アナログスティック読み込み)
.dc.l get_joy_mtap * 関数名(マルチタップ判定状態の取得)
.dc.l get_joy_bitcnv * 関数名(ビット変換モード状態の取得)
.dc.l get_joy_bitdat * 関数名(ビット変換データの取得)
.dc.l get_joy_out * 関数名(出力モードの取得)
.dc.l get_tap_maxnum * 関数名(マルチタップ使用時ジョイスティック数の取得)
.dc.l get_plus_emu * 関数名(アナログスティック十字キーエミュレート変換の取得)
.dc.l get_plus_thres * 関数名(アナログスティック十字キーエミュレートしきい値の取得)
.dc.l get_stasel_mode * 関数名(START,SELECTボタンモードの取得)
.dc.l get_lnsha_mode * 関数名(連射モードの取得)
.dc.l set_joy_mtap * 関数名(マルチタップ判定状態の設定)
.dc.l set_joy_bitcnv * 関数名(ビット変換モード状態の設定)
.dc.l set_joy_bitdat * 関数名(ビット変換データの設定)
.dc.l set_joy_out * 関数名(出力モードの設定)
.dc.l set_tap_maxnum * 関数名(マルチタップ使用時ジョイスティック数の設定)
.dc.l set_plus_emu * 関数名(アナログスティック十字キーエミュレート変換の設定)
.dc.l set_plus_thres * 関数名(アナログスティック十字キーエミュレートしきい値の設定)
.dc.l set_stasel_mode * 関数名(START,SELECTボタンモードの設定)
.dc.l set_lnsha_mode * 関数名(連射モードの設定)
.dc.l read_ps_memc * 関数名(プレイステーションメモリカードの読み込み)
.dc.l write_ps_memc * 関数名(プレイステーションメモリカードの書き込み)
.dc.l ctrl_ps_motor * 関数名(プレイステーション振動パッドコントロール)
TOKEN_TBL:
.dc.b 'get_joy_data',0 * 関数名(ジョイスティック状態の取得)
.dc.b 'get_joydrv',0 * 関数名(ドライバ常駐状態の取得)
.dc.b 'get_analog_data',0 * 関数名(アナログスティック読み込み)
.dc.b 'get_joy_mtap',0 * 関数名(マルチタップ判定状態の取得)
.dc.b 'get_joy_bitcnv',0 * 関数名(ビット変換モード状態の取得)
.dc.b 'get_joy_bitdat',0 * 関数名(ビット変換データの取得)
.dc.b 'get_joy_out',0 * 関数名(出力モードの取得)
.dc.b 'get_tap_maxnum',0 * 関数名(マルチタップ使用時ジョイスティック数の取得)
.dc.b 'get_plus_emu',0 * 関数名(アナログスティック十字キーエミュレート変換の取得)
.dc.b 'get_plus_thres',0 * 関数名(アナログスティック十字キーエミュレートしきい値の取得)
.dc.b 'get_stasel_mode',0 * 関数名(START,SELECTボタンモードの取得)
.dc.b 'get_lnsha_mode',0 * 関数名(連射モードの取得)
.dc.b 'set_joy_mtap',0 * 関数名(マルチタップ判定状態の設定)
.dc.b 'set_joy_bitcnv',0 * 関数名(ビット変換モード状態の設定)
.dc.b 'set_joy_bitdat',0 * 関数名(ビット変換データの設定)
.dc.b 'set_joy_out',0 * 関数名(出力モードの設定)
.dc.b 'set_tap_maxnum',0 * 関数名(マルチタップ使用時ジョイスティック数の設定)
.dc.b 'set_plus_emu',0 * 関数名(アナログスティック十字キーエミュレート変換の設定)
.dc.b 'set_plus_thres',0 * 関数名(アナログスティック十字キーエミュレートしきい値の設定)
.dc.b 'set_stasel_mode',0 * 関数名(START,SELECTボタンモードの設定)
.dc.b 'set_lnsha_mode',0 * 関数名(連射モードの設定)
.dc.b 'read_ps_memc',0 * 関数名(プレイステーションメモリカードの読み込み)
.dc.b 'write_ps_memc',0 * 関数名(プレイステーションメモリカードの書き込み)
.dc.b 'ctrl_ps_motor',0 * 関数名(プレイステーション振動パッドコントロール)
.dc.b 0
.data
.end